Fuzzy set theory was developed in the 1960's to provide a means to bridge the man-machine gap. Fuzzy logic is the application of fuzzy set theory to boolean algebra. It lays the mathematical framework for the development of tools to describe human thoughts and reasoning to the machine. Fuzzy logic lets computers assign numerical values that fall between zero and one. Instead of statements being only true or false, fuzzy theory sets up conditions such as slow, medium and fast, and makes a variety of computer-controlled machines run more smoothly and efficiently. Fuzzy logic has been applied to many computationally complex problems in decision making and industrial control. Applications include prosthetic device control, elevator control, washing machines, televisions, and braking controls for trains.
The basic fuzzy logic operations are: MAX, for finding the maximum of two numbers; MIN, for finding the minimum of two numbers; and INVERSE. Fuzzy operations also include ordinary numerical operations such as addition, multiplication and division. Traditionally, the MAX and MIN operations have been carried out in software in digital computers. However, computational speeds achievable with these methods are often not satisfactory for real time systems. Many of the applications for fuzzy operations are time-intensive as well as time-critical, thus the speed of fuzzy operations is extremely important. As a result, there has been an increasing effort to develop systems which have increased speed in calculating fuzzy operations.
The efforts to increase the speed of fuzzy operations have focused on developing computers that carry out these operations in hardware. To date, most research has focused on the design of special purpose analog systems. See for example, Fuzzy Multiple-Input Maximum and Minimum Circuits in Current Mode and Their Analyses Using Bonded-Difference Equations, Sasaki, Inoue, Shirai and Yeno, 39 IEEE Transactions on Computers 768 (June, 1990). Although, such analog systems are relatively quick, analog systems have a relatively a high degree of error and are not programmable. Also, analog systems cannot perform both basic fuzzy operations and ordinary numerical operations.
Another hardware solution for implementing fuzzy operations is to use digital circuitry. Such circuitry has the advantage of being easily incorporated into existing conventional digital computers and thus provides the facility of user-programmability. Further, digital circuitry will yield more accurate results as compared to analog circuitry.
One approach for using digital circuitry for performing fuzzy operations, such as circuitry for comparing two binary numbers, is implemented by comparing each corresponding bit of the two binary numbers, starting from the most significant bit (MSB) down to the least significant bit (LSB), while keeping track of information at each step, of the previous comparison. Thus, the numbers are compared one bit at a time with the comparison information "cascading" down from one bit to the next, lesser significant, bit. This cascading implementation is relatively slow and is therefore ineffective for use in many applications. Thus, a need exists for fast digital circuitry for comparing binary numbers.
Prior digital adding circuits have utilized "carry look-ahead circuitry" to avoid time delay resulting from cascading information, concerning whether to carry or not, from one bit to the next. Comparison circuits, as opposed to adder circuits, must be concerned with three times the information as that of an adding circuit. Comparison information is concerned with whether the numbers are equal, the first number is greater than the second, or the second number is greater than the first. All three states must be taken into consideration when designing comparison-look-ahead circuitry.